<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
          "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">

<!-- $Id: yasm_parsers.xml 1662 2006-10-21 18:52:29Z peter $ -->     

<refentry id="yasm_parsers">

 <refentryinfo>
  <title>Yasm Supported Parsers</title>
  <date>October 2006</date>
  <productname>Yasm</productname>
  <author>
   <firstname>Peter</firstname>
   <surname>Johnson</surname>
   <affiliation>
    <address><email>peter@tortall.net</email></address>
   </affiliation>
  </author>

  <copyright>
   <year>2006</year>
   <holder>Peter Johnson</holder>
  </copyright>
 </refentryinfo>

 <refmeta>
  <refentrytitle>yasm_parsers</refentrytitle>
  <manvolnum>7</manvolnum>
 </refmeta>

 <refnamediv>
  <refname>yasm_parsers</refname>
  <refpurpose>Yasm Supported Parsers (Assembler Syntaxes)</refpurpose>
 </refnamediv>

 <refsynopsisdiv>
  <cmdsynopsis>
   <command>yasm</command>
   <arg choice="plain">
    <option>-p <replaceable>parser</replaceable></option>
   </arg>
   <arg choice="opt">
    <option>-r <replaceable>preproc</replaceable></option>
   </arg>
   <arg choice="plain">
    <option><replaceable>...</replaceable></option>
   </arg>
  </cmdsynopsis>
 </refsynopsisdiv>

 <refsect1>
  <title>Description</title>

  <para>The standard Yasm distribution includes a number of modules
   for different parsers (assembler syntaxes).</para>

  <para>The parser is selected on the
   
   <citerefentry>
    <refentrytitle>yasm</refentrytitle>
    <manvolnum>1</manvolnum>
   </citerefentry>
   
   command line by use of the <option>-p
    <replaceable>parser</replaceable></option> command line
   option.</para>
 </refsect1>

 <refsect1>
  <title>NASM Parser</title>

  <para>NASM syntax, selected with <option>-p nasm</option>, is the
   most full-featured syntax supported by Yasm.  Yasm is nearly 100%
   compatible with NASM for 16-bit and 32-bit x86 code.  Yasm
   additionally supports 64-bit AMD64 code with Yasm extensions to the
   NASM syntax; see

   <citerefentry>
    <refentrytitle>yasm_arch</refentrytitle>
    <manvolnum>7</manvolnum>
   </citerefentry>
   
   for details.  NASM syntax is the Yasm default.</para>
 </refsect1>

 <refsect1>
  <title>GAS Parser</title>

  <para>The GNU Assembler (GAS) is the de-facto cross-platform
   assembler for modern Unix systems, and is used as the backend for
   the GCC compiler.  Yasm's support for GAS syntax is moderately
   good, although immature: not all directives are supported, and only
   32-bit x86 and AMD64 architectures are supported.  There is also no
   support for the GAS preprocessor.  Despite these limitations,
   Yasm's GAS syntax support is good enough to handle essentially all
   x86 and AMD64 GCC compiler output.  The GAS parser can be selected
   with <option>-p gas</option>.</para>
 </refsect1>

 <refsect1>
  <title>See Also</title>

  <para><citerefentry>
   <refentrytitle>yasm</refentrytitle>
   <manvolnum>1</manvolnum>
  </citerefentry>,

  <citerefentry>
   <refentrytitle>yasm_arch</refentrytitle>
   <manvolnum>7</manvolnum>
  </citerefentry></para>
 </refsect1>
</refentry>
